一、第一种方式
    存取控制过滤器 ACF
    1、是一种通过 yii\filters\AccessControl类来实现的简单授权方法，非常适用于仅需要简单的存取控制的应用。
    2、在控制器中的behaviors()方法中设定存取的规则。当用户请求一个动作的时候，ACF会检查存取无则，判断该用户是否被允许执行所请求的动作。
    3、两种角色：? => 未经认证访客用户   @ => 已认证用户
    4、例子：
        public function behaviors()
        {
            return [
                'access'=>[
                    'class'=>AccessControl::className(),
                    'rules'=>[
                        [
                            'actions'=>['login','error'],
                            'allow'=>true,
                            'roles'=>['?'],
                        ],
                        [
                            'actions'=>['logout','index'],
                            'allow'=>true,
                            'roles'=>['@'],
                        ],
                    ],
                ],
            ],
        }



二、基于角色的存取控制 RBAC：

基于角色授权管理的数据库表要有四张表，这些表可以通过数据库迁移来完成：


1、首页进入配置应用组件的文件中(common/config/main.php)，加入如下配置：
    'authManager' => 'yii\rbac\DbManager'，
否则会出现如下错误：
    PHP yii\base\InvalidConfigException:  You should configure "authManager" component to use database before executing this migration.


2、接下来进入项目所在的根目录，cd /var/www/html/yii04

执行数据库迁移命令： ./yii migrate --migrationPath=@yii/rbac/migrations

成功创建数据库的话，会有如下提示：
    $ ./yii migrate --migrationPath=@yii/rbac/migrations
    Yii Migration Tool (based on Yii v2.0.11.2)

    Total 1 new migration to be applied:
    m140506_102106_rbac_init

    Apply the above migration? (yes|no) [no]:yes
    *** applying m140506_102106_rbac_init
    > create table {{%auth_rule}} ... done (time: 0.576s)
    > create table {{%auth_item}} ... done (time: 0.597s)
    > create index idx-auth_item-type on {{%auth_item}} (type) ... done (time: 0.579s)
    > create table {{%auth_item_child}} ... done (time: 0.647s)
    > create table {{%auth_assignment}} ... done (time: 0.693s)
    *** applied m140506_102106_rbac_init (time: 3.538s)


    1 migration was applied.

    Migrated up successfully.


3、通过 authManager 提供的 API 创建一个控制台命令初始化授权数据
    在 console/controllers/ 下面创建一个控制器，里面写一个权限控制的代码，然后运行 ./yii rbac/init 来初始化这个控制器。

4、最后执行权限的检查
    yii\web\User::can()方法是一种快捷用法，用于对当前便当的用户进行权限检查。如果要能对任何用户进行权限检查，需要调用 yii\rbac\ManagerInterface::checkAccess() 方法来检查权限。